package com.tianlu.store.entity;
 
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.tianlu.store.enums.ProductTypeEnum;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.tianlu.store.common.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;

import javax.persistence.Transient;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * 商品信息表(ProductInfo)实体类
 *
 * @author 梁东烂
 * @since 2023-04-03 16:50:55
 */
@Data
@ApiModel(value = "商品信息表实体类", description = "商品信息表实体类")
@TableName("t_product_info")
public class ProductInfo extends BaseEntity<ProductInfo> {
    private static final long serialVersionUID = -77722025619840140L;
    /**
     * 商品名称
     */   
    @ApiModelProperty(value = "商品名称")
    private String name;
    /**
     * 商品描述
     */   
    @ApiModelProperty(value = "商品描述")
    private String description;
    /**
     * 原价
     */   
    @ApiModelProperty(value = "原价")
    private BigDecimal price;
    /**
     * 代理商价
     */   
    @ApiModelProperty(value = "代理商价")
    private BigDecimal agentPrice;
    /**
     * 分公司价
     */
    @ApiModelProperty(value = "分公司价")
    private BigDecimal companyPrice;
    /**
     * 分公司价
     */
    @ApiModelProperty(value = "秒杀价")
    private BigDecimal killPrice;
    /**
     * 秒杀开始时间
     */
    @ApiModelProperty(value = "秒杀开始时间")
    private Date beginTime;
    /**
     * 主图
     */   
    @ApiModelProperty(value = "主图")
    private String mainPicture;
    /**
     * 详情图
     */   
    @ApiModelProperty(value = "详情图")
    private String detailPicture;
    /**
     * 类型：1普通商品，2代理商礼包，3分公司礼包，4免费商品, 5秒杀商品
     */
    @ApiModelProperty(value = "类型：1普通商品，2代理商礼包，3分公司礼包，4免费商品, 5秒杀商品")
    private Integer type;
    /**
     * 状态：1上架，0下架
     */   
    @ApiModelProperty(value = "状态：1上架，0下架")
    private Integer status;
    /**
     * 排序
     */   
    @ApiModelProperty(value = "排序")
    private Integer sort;
    /**
     * 库存
     */   
    @ApiModelProperty(value = "库存")
    private Integer stock;

    /**
     * 数量
     */
    @Transient
    @TableField(exist = false)
    @ApiModelProperty(value = "数量")
    private Integer quantity;

    /**
     * 类型：1普通商品，2代理商礼包，3分公司礼包，4免费商品, 5秒杀商品
     */
    @Transient
    @TableField(exist = false)
    @ApiModelProperty(value = "类型：1普通商品，2代理商礼包，3分公司礼包，4免费商品, 5秒杀商品")
    private String typeText;
    public String getTypeText() {
        return type == null ? "" : ProductTypeEnum.findByCode(type);
    }

    /**
     * 当前时间
     */
    @Transient
    @TableField(exist = false)
    @ApiModelProperty(value = "当前时间")
    private Date currentTime;
    public Date getCurrentTime() {
        return new Date();
    }

    /**
     * 主图
     */
    @Transient
    @TableField(exist = false)
    @ApiModelProperty(value = "主图")
    private List<String> mainPictureList;
    public List<String> getMainPictureList() {
        return StrUtil.isBlank(mainPicture) ? new ArrayList<>() : Arrays.asList(mainPicture.split("\\|"));
    }

    /**
     * 主图
     */
    @Transient
    @TableField(exist = false)
    @ApiModelProperty(value = "主图")
    private List<String> detailPictureList;
    public List<String> getDetailPictureList() {
        return StrUtil.isBlank(detailPicture) ? new ArrayList<>() : Arrays.asList(detailPicture.split("\\|"));
    }
}
